🎖️GitЯра🎖️
src/helpers/RTC_RX8130CE.cpp 890a2e2cffa98dea3ca88db3c3aba72ef23ff3f7 (890a2e2c) Text, 4.47 KB
Tff7b72#Tff7b72include T8b949e"RTC_RX8130CE.h"
Tff7b72#Tff7b72include T8b949e"RTClib.h"
Tffa657bool Td2a8ffRTC_RX8130CE::stopTb4b4b4(Tffa657bool Te6edf3stopTb4b4b4) Tb4b4b4{
Te6edf3write_registerTb4b4b4(T79c0ff0x1ETb4b4b4, Te6edf3stop Tff7b72? T79c0ff0x040 Tff7b72: T79c0ff0x00Tb4b4b4)Tb4b4b4;
Tff7b72return Tffa657trueTb4b4b4;
Tb4b4b4}
Tffa657bool Td2a8ffRTC_RX8130CE::beginTb4b4b4(Te6edf3TwoWire Tff7b72*Te6edf3wireTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3i2c_devTb4b4b4) Tb4b4b4{
Tff7b72delete Te6edf3i2c_devTb4b4b4;
Tb4b4b4}
Te6edf3i2c_dev Tff7b72= Tff7b72new Te6edf3Adafruit_I2CDeviceTb4b4b4(Tff7b72thisTff7b72-Tff7b72>Te6edf3_addrTb4b4b4, Te6edf3wireTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3i2c_devTff7b72-Tff7b72>Te6edf3beginTb4b4b4(Tb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72return Tffa657falseTb4b4b4;
Tb4b4b4}
T8b949e/*
* Digital offset register:
* [7] DET: 0 -> disabled
* [6:0] L7-L1: 0 -> no offset
*/
Te6edf3write_registerTb4b4b4(T79c0ff0x30Tb4b4b4, T79c0ff0x00Tb4b4b4)Tb4b4b4;
T8b949e/*
* Extension Register register:
* [7:6] FSEL: 0 -> 0
* [5] USEL: 0 -> 0
* [4] TE: 0 ->
* [3] WADA: 0 -> 0
* [2-0] TSEL: 0 -> 0
*/
Te6edf3write_registerTb4b4b4(T79c0ff0x1CTb4b4b4, T79c0ff0x00Tb4b4b4)Tb4b4b4;
T8b949e/*
* Flag Register register:
* [7] VBLF: 0 -> 0
* [6] 0: 0 ->
* [5] UF: 0 ->
* [4] TF: 0 ->
* [3] AF: 0 -> 0
* [2] RSF: 0 -> 0
* [1] VLF: 0 -> 0
* [0] VBFF: 0 -> 0
*/
Te6edf3write_registerTb4b4b4(T79c0ff0x1DTb4b4b4, T79c0ff0x00Tb4b4b4)Tb4b4b4;
T8b949e/*
* Control Register0 register:
* [7] TEST: 0 -> 0
* [6] STOP: 0 ->
* [5] UIE: 0 ->
* [4] TIE: 0 ->
* [3] AIE: 0 -> 0
* [2] TSTP: 0 -> 0
* [1] TBKON: 0 -> 0
* [0] TBKE: 0 -> 0
*/
Te6edf3write_registerTb4b4b4(T79c0ff0x1ETb4b4b4, T79c0ff0x00Tb4b4b4)Tb4b4b4;
T8b949e/*
* Control Register1 register:
* [7-6] SMPTSEL: 0 -> 0
* [5] CHGEN: 0 ->
* [4] INIEN: 0 ->
* [3] 0: 0 ->
* [2] RSVSEL: 0 -> 0
* [1-0] BFVSEL: 0 -> 0
*/
Te6edf3write_registerTb4b4b4(T79c0ff0x1FTb4b4b4, T79c0ff0x00Tb4b4b4)Tb4b4b4;
Tff7b72thisTff7b72-Tff7b72>Te6edf3stopTb4b4b4(Tffa657falseTb4b4b4)Tb4b4b4; T8b949e// clear STOP bit
T8b949e/*
* Function register:
* [7] 100TH: 0 -> disabled
* [6:5] Periodic interrupt: 0 -> no periodic interrupt
* [4] RTCM: 0 -> real-time clock mode
* [3] STOPM: 0 -> RTC stop is controlled by STOP bit only
* [2:0] Clock output frequency: 000 (Default value)
*/
Te6edf3write_registerTb4b4b4(T79c0ff0x28Tb4b4b4, T79c0ff0x00Tb4b4b4)Tb4b4b4;
T8b949e// Battery switch register
Te6edf3write_registerTb4b4b4(T79c0ff0x26Tb4b4b4, T79c0ff0x00Tb4b4b4)Tb4b4b4; T8b949e// enable battery switch feature
Tff7b72return Tffa657trueTb4b4b4;
Tb4b4b4}
Tffa657bool Td2a8ffRTC_RX8130CE::setTimeTb4b4b4(Tff7b72struct T56d364tm Tff7b72*Te6edf3tTb4b4b4) Tb4b4b4{
Tffa657uint8_t Te6edf3bufTb4b4b4[T79c0ff8Tb4b4b4]Tb4b4b4;
Te6edf3bufTb4b4b4[T79c0ff0Tb4b4b4] Tff7b72= T79c0ff0x10Tb4b4b4;
Te6edf3bufTb4b4b4[T79c0ff1Tb4b4b4] Tff7b72= Te6edf3bin2bcdTb4b4b4(Te6edf3tTff7b72-Tff7b72>Te6edf3tm_secTb4b4b4) Tff7b72& T79c0ff0x7FTb4b4b4;
Te6edf3bufTb4b4b4[T79c0ff2Tb4b4b4] Tff7b72= Te6edf3bin2bcdTb4b4b4(Te6edf3tTff7b72-Tff7b72>Te6edf3tm_minTb4b4b4) Tff7b72& T79c0ff0x7FTb4b4b4;
Te6edf3bufTb4b4b4[T79c0ff3Tb4b4b4] Tff7b72= Te6edf3bin2bcdTb4b4b4(Te6edf3tTff7b72-Tff7b72>Te6edf3tm_hourTb4b4b4) Tff7b72& T79c0ff0x3FTb4b4b4;
Te6edf3bufTb4b4b4[T79c0ff4Tb4b4b4] Tff7b72= Te6edf3bin2bcdTb4b4b4(Te6edf3tTff7b72-Tff7b72>Te6edf3tm_wdayTb4b4b4) Tff7b72& T79c0ff0x07Tb4b4b4;
Te6edf3bufTb4b4b4[T79c0ff5Tb4b4b4] Tff7b72= Te6edf3bin2bcdTb4b4b4(Te6edf3tTff7b72-Tff7b72>Te6edf3tm_mdayTb4b4b4) Tff7b72& T79c0ff0x3FTb4b4b4;
Te6edf3bufTb4b4b4[T79c0ff6Tb4b4b4] Tff7b72= Te6edf3bin2bcdTb4b4b4(Te6edf3tTff7b72-Tff7b72>Te6edf3tm_mon Tff7b72+ T79c0ff1Tb4b4b4) Tff7b72& T79c0ff0x1FTb4b4b4;
Te6edf3bufTb4b4b4[T79c0ff7Tb4b4b4] Tff7b72= Te6edf3bin2bcdTb4b4b4(Tb4b4b4(Te6edf3tTff7b72-Tff7b72>Te6edf3tm_year Tff7b72- T79c0ff100Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tff7b72thisTff7b72-Tff7b72>Te6edf3stopTb4b4b4(Tffa657trueTb4b4b4)Tb4b4b4;
Te6edf3i2c_devTff7b72-Tff7b72>Te6edf3writeTb4b4b4(Te6edf3bufTb4b4b4, Tff7b72sizeofTb4b4b4(Te6edf3bufTb4b4b4)Tb4b4b4)Tb4b4b4;
Tff7b72thisTff7b72-Tff7b72>Te6edf3stopTb4b4b4(Tffa657falseTb4b4b4)Tb4b4b4;
Tff7b72return Tffa657trueTb4b4b4;
Tb4b4b4}
Tffa657void Td2a8ffRTC_RX8130CE::adjustTb4b4b4(Te6edf3DateTime Te6edf3dtTb4b4b4) Tb4b4b4{
Tff7b72struct T56d364tm Tff7b72*Te6edf3atvTb4b4b4;
Tffa657time_t Te6edf3utimeTb4b4b4;
Te6edf3utime Tff7b72= Tb4b4b4(Tffa657time_tTb4b4b4)Te6edf3dtTb4b4b4.Te6edf3unixtimeTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3atv Tff7b72= Te6edf3gmtimeTb4b4b4(Tff7b72&Te6edf3utimeTb4b4b4)Tb4b4b4;
Tff7b72thisTff7b72-Tff7b72>Te6edf3setTimeTb4b4b4(Te6edf3atvTb4b4b4)Tb4b4b4;
Tb4b4b4}
Te6edf3DateTime Td2a8ffRTC_RX8130CE::nowTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72struct T56d364tm Te6edf3atvTb4b4b4;
Tff7b72thisTff7b72-Tff7b72>Te6edf3getTimeTb4b4b4(Tff7b72&Te6edf3atvTb4b4b4)Tb4b4b4;
Tff7b72return Te6edf3DateTimeTb4b4b4(Tb4b4b4(Tffa657uint32_tTb4b4b4)Te6edf3mktimeTb4b4b4(Tff7b72&Te6edf3atvTb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tffa657uint32_t Td2a8ffRTC_RX8130CE::unixtimeTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72struct T56d364tm Te6edf3atvTb4b4b4;
Tff7b72thisTff7b72-Tff7b72>Te6edf3getTimeTb4b4b4(Tff7b72&Te6edf3atvTb4b4b4)Tb4b4b4;
Tff7b72return Tb4b4b4(Tffa657uint32_tTb4b4b4)Te6edf3mktimeTb4b4b4(Tff7b72&Te6edf3atvTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tffa657bool Td2a8ffRTC_RX8130CE::getTimeTb4b4b4(Tff7b72struct T56d364tm Tff7b72*Te6edf3tTb4b4b4) Tb4b4b4{
Tffa657uint8_t Te6edf3buffTb4b4b4[T79c0ff7Tb4b4b4]Tb4b4b4;
Te6edf3buffTb4b4b4[T79c0ff0Tb4b4b4] Tff7b72= T79c0ff0x10Tb4b4b4;
Te6edf3i2c_devTff7b72-Tff7b72>Te6edf3write_then_readTb4b4b4(Te6edf3buffTb4b4b4, T79c0ff1Tb4b4b4, Te6edf3buffTb4b4b4, T79c0ff7Tb4b4b4)Tb4b4b4;
Te6edf3tTff7b72-Tff7b72>Te6edf3tm_sec Tff7b72= Te6edf3bcd2binTb4b4b4(Te6edf3buffTb4b4b4[T79c0ff0Tb4b4b4] Tff7b72& T79c0ff0x7FTb4b4b4)Tb4b4b4;
Te6edf3tTff7b72-Tff7b72>Te6edf3tm_min Tff7b72= Te6edf3bcd2binTb4b4b4(Te6edf3buffTb4b4b4[T79c0ff1Tb4b4b4] Tff7b72& T79c0ff0x7FTb4b4b4)Tb4b4b4;
Te6edf3tTff7b72-Tff7b72>Te6edf3tm_hour Tff7b72= Te6edf3bcd2binTb4b4b4(Te6edf3buffTb4b4b4[T79c0ff2Tb4b4b4] Tff7b72& T79c0ff0x3FTb4b4b4)Tb4b4b4;
Te6edf3tTff7b72-Tff7b72>Te6edf3tm_wday Tff7b72= Te6edf3bcd2binTb4b4b4(Te6edf3buffTb4b4b4[T79c0ff3Tb4b4b4] Tff7b72& T79c0ff0x07Tb4b4b4)Tb4b4b4;
Te6edf3tTff7b72-Tff7b72>Te6edf3tm_mday Tff7b72= Te6edf3bcd2binTb4b4b4(Te6edf3buffTb4b4b4[T79c0ff4Tb4b4b4] Tff7b72& T79c0ff0x3FTb4b4b4)Tb4b4b4;
Te6edf3tTff7b72-Tff7b72>Te6edf3tm_mon Tff7b72= Te6edf3bcd2binTb4b4b4(Te6edf3buffTb4b4b4[T79c0ff5Tb4b4b4] Tff7b72& T79c0ff0x1FTb4b4b4) Tff7b72- T79c0ff1Tb4b4b4;
Te6edf3tTff7b72-Tff7b72>Te6edf3tm_year Tff7b72= Te6edf3bcd2binTb4b4b4(Te6edf3buffTb4b4b4[T79c0ff6Tb4b4b4]Tb4b4b4) Tff7b72+ T79c0ff100Tb4b4b4;
Tff7b72return Tffa657trueTb4b4b4;
Tb4b4b4}
Tffa657bool Td2a8ffRTC_RX8130CE::writeRAMTb4b4b4(Tffa657uint8_t Te6edf3addressTb4b4b4, Tffa657uint8_t Te6edf3valueTb4b4b4) Tb4b4b4{
Tff7b72return Tff7b72thisTff7b72-Tff7b72>Te6edf3writeRAMTb4b4b4(Te6edf3addressTb4b4b4, Tff7b72&Te6edf3valueTb4b4b4, T79c0ff1Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tffa657size_t Td2a8ffRTC_RX8130CE::writeRAMTb4b4b4(Tffa657uint8_t Te6edf3addressTb4b4b4, Tffa657uint8_t Tff7b72*Te6edf3valueTb4b4b4, Tffa657size_t Te6edf3lenTb4b4b4) Tb4b4b4{
Tffa657uint8_t Te6edf3bufTb4b4b4[Te6edf3len Tff7b72+ T79c0ff1Tb4b4b4]Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3address Tff7b72> T79c0ff3Tb4b4b4) Tb4b4b4{
Tff7b72return T79c0ff0Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Tb4b4b4(Te6edf3address Tff7b72+ Te6edf3lenTb4b4b4) Tff7b72> T79c0ff3Tb4b4b4) Tb4b4b4{
Te6edf3len Tff7b72= T79c0ff3 Tff7b72- Te6edf3addressTb4b4b4;
Tb4b4b4}
Te6edf3bufTb4b4b4[T79c0ff0Tb4b4b4] Tff7b72= T79c0ff0x20 Tff7b72+ Te6edf3addressTb4b4b4;
Tff7b72for Tb4b4b4(Tffa657int Te6edf3i Tff7b72= T79c0ff1Tb4b4b4; Te6edf3i Tff7b72<Tff7b72= Te6edf3len Tff7b72+ T79c0ff1Tb4b4b4; Te6edf3iTff7b72+Tff7b72+Tb4b4b4) Tb4b4b4{
Te6edf3bufTb4b4b4[Te6edf3iTb4b4b4] Tff7b72= Te6edf3valueTb4b4b4[Te6edf3i Tff7b72- T79c0ff1Tb4b4b4]Tb4b4b4;
Tb4b4b4}
Te6edf3i2c_devTff7b72-Tff7b72>Te6edf3writeTb4b4b4(Te6edf3bufTb4b4b4, Te6edf3len Tff7b72+ T79c0ff1Tb4b4b4)Tb4b4b4;
Tff7b72return Te6edf3lenTb4b4b4;
Tb4b4b4}
Tffa657bool Td2a8ffRTC_RX8130CE::readRAMTb4b4b4(Tffa657uint8_t Te6edf3addressTb4b4b4, Tffa657uint8_t Tff7b72*Te6edf3valueTb4b4b4, Tffa657size_t Te6edf3lenTb4b4b4) Tb4b4b4{
Tffa657uint8_t Te6edf3real_address Tff7b72= T79c0ff0x20 Tff7b72+ Te6edf3addressTb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3address Tff7b72> T79c0ff3Tb4b4b4) Tb4b4b4{ T8b949e// Oversize of 64-bytes RAM
Tff7b72return Tffa657falseTb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Tb4b4b4(Te6edf3address Tff7b72+ Te6edf3lenTb4b4b4) Tff7b72> T79c0ff3Tb4b4b4) Tb4b4b4{ T8b949e// Data size over RAM size
Te6edf3len Tff7b72= T79c0ff3 Tff7b72- Te6edf3addressTb4b4b4;
Tb4b4b4}
Te6edf3i2c_devTff7b72-Tff7b72>Te6edf3write_then_readTb4b4b4(Tff7b72&Te6edf3real_addressTb4b4b4, T79c0ff1Tb4b4b4, Te6edf3valueTb4b4b4, Te6edf3lenTb4b4b4)Tb4b4b4;
Tff7b72return Tffa657trueTb4b4b4;
Tb4b4b4}
Tffa657uint8_t Td2a8ffRTC_RX8130CE::readRAMTb4b4b4(Tffa657uint8_t Te6edf3addressTb4b4b4) Tb4b4b4{
Tffa657uint8_t Te6edf3value Tff7b72= T79c0ff0xFFTb4b4b4;
Tff7b72thisTff7b72-Tff7b72>Te6edf3readRAMTb4b4b4(Te6edf3addressTb4b4b4, Tff7b72&Te6edf3valueTb4b4b4, T79c0ff1Tb4b4b4)Tb4b4b4;
Tff7b72return Te6edf3valueTb4b4b4;
Tb4b4b4}
Served by rngit 1.5.0 - Generated in 0.07s